package com.learn.hutool.user.vo;

import com.learn.hutool.user.User;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.core.annotation.Order;

import java.lang.invoke.MethodHandles;

/**
 * 用户展示类
 * @author HuangChao
 **/
@EqualsAndHashCode(callSuper = true)
@Data
@Order(value = 2)
public class UserVO<T, D>
    extends User
{
    /**
     * 用户所关联对象
     */
    private User student;
    /**
     * 泛型类
     */
    private T t;

    private String vo;

    private D d;

    /**
     * 哈哈
     * @param s 参数
     */
    private UserVO(String s) {

    }

    public UserVO() {
    }

    @Override
    public void setName(String name) {
        super.setName(name);
    }

    @Override
    public String toString() {
        return "UserVO{" +
               "student=" + student +
               ", t=" + t +
               ", vo='" + vo + '\'' +
               ", pu=" + pu +
               "} " + super.toString();
    }

    @Override
    public Long getId() {
        return 1L;
    }

    public static String getStatic(String value) {
        return value;
    }


    public UserVO clone1() {
        try {
            return (UserVO) super.clone();
        } catch (CloneNotSupportedException e) {
            e.printStackTrace();
        }
        return null;
    }

    public static MethodHandles.Lookup getLookup() {
        return MethodHandles.lookup();
    }

    @Data
    public class UserVOInner<T> {
        private String id;
        private T t;

        public class UserVoInnerChild {

        }

        @Data
        public class UserVOInnerInner<T, D> {
            private T t;
        }
    }
}
